// 创建一个最小flutter应用
import 'package:flutter/material.dart';

// 主文件样式（main.dart）
void main() {
  // runAPP函数会持有传入的widget，并使他成为widget树中的根节点
  runApp(
      // widget：Center，框架会强制跟widget铺满整个屏幕
      const Center(
    // widget： Text
    child: Text(
      'hello, world!',
      textDirection: TextDirection.ltr,
    ),
  ));
}

class MyAppBar extends StatelessWidget {
  const MyAppBar({required this.title, Key? key}) : super(key: key);

  // widget子类中的字段始终标记为final
  final Widget title;

  @override
  Widget build(BuildContext context) {
    return Container(
      height: 56.0,
      padding: const EdgeInsets.symmetric(horizontal: 8.0),
      decoration: BoxDecoration(color: Colors.blue[500]),
      child: Row(
        children: [
          const IconButton(
            icon: Icon(Icons.menu),
            tooltip: 'Navigation menu',
            onPressed: null,
          ),
          // Expanded widget会扩展填充其他widget未使用的空间
          Expanded(child: title),
          const IconButton(
            onPressed: null,
            icon: Icon(Icons.search),
            tooltip: 'Search',
          )
        ],
      ),
    );
  }
}

class MyScaffold extends StatelessWidget {
  const MyScaffold({Key? key}) : super(key: key);

  // 若想使用material主题，则属于material主题的widget必须在material中使用才有相应的效果
  @override
  Widget build(BuildContext context) {
    return Material(
        child: Column(
          children: [
            MyAppBar(
                title: Text(
              'example title',
              style: Theme.of(context).primaryTextTheme.headline6,
            )),
            const Expanded(
              child: Center(
                child: Text('hello, world'),
              ),
            )
          ],
    ));
  }
}
